﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace FlyingCircusWebIS.ViewModels.VooVM
{
    public class VooCadastrarVM
    {
        public bool Edicao { get; set; }

        public int IdVoo { get; set; }

        //[Display(Name = "Nome do Voo *")]
        //[Required(ErrorMessage = "Insira um nome para o Voo")]
        //[MinLength(3, ErrorMessage = "O campo deve ter no mínimo 3 caracteres")]
        //[MaxLength(100, ErrorMessage = "O campo deve ter no máximo 100 caracteres")]
        public string NomeVoo { get; set; }

        [Display(Name = "UF  *")]
        [Required(ErrorMessage = "Selecione uma UF de Origem", AllowEmptyStrings = false)]
        public string UFPartida { get; set; }

        [Display(Name = "Cidade  *")]
        [Required(ErrorMessage = "Selecione uma cidade de Origem", AllowEmptyStrings = false)]
        public string CidadePartida { get; set; }

        [Display(Name = "Aeroporto  *")]
        [Required(ErrorMessage = "Selecione um aeroporto de Origem", AllowEmptyStrings = false)]
        public string AeroportoPartida { get; set; }

        [Display(Name = "Data de Partida  *")]
        [Required(ErrorMessage = "Insira uma data e horário para o Voo")]
        [DisplayFormat(DataFormatString = "dd/mm/yyy hh24:mi:ss")]
        public string DataPartida { get; set; }


        //---
        [Display(Name = "UF  *")]
        [Required(ErrorMessage = "Selecione uma UF de destino", AllowEmptyStrings = false)]
        public string UFChegada { get; set; }

        [Display(Name = "Cidade  *")]
        [Required(ErrorMessage = "Selecione uma cidade de destino", AllowEmptyStrings = false)]
        public string CidadeChegada { get; set; }

        [Display(Name = "Aeroporto  *")]
        [Required(ErrorMessage = "Selecione um aeroporto de destino", AllowEmptyStrings = false)]
        public string AeroportoChegada { get; set; }

        [Display(Name = "Data de Chegada  *")]
        [Required(ErrorMessage = "Insira uma data e horário para o Voo")]
        [DisplayFormat(DataFormatString = "dd/mm/yyy hh24:mi:ss")]
        public string DataChegada { get; set; }

        [Display(Name = "Quantidade de assentos  *")]
        [Required(ErrorMessage = "Insira o número de assentos comercializáveis")]
        public string AssentosComercializaveis { get; set; }

        [Display(Name = "Aeronave  *")]
        [Required(ErrorMessage = "Selecione uma aeronave")]
        public string IdAeronave { get; set; }

        [Display(Name = "Lucro obtido (%) *")]
        [Required(ErrorMessage = "Insira uma margem de lucro")]
        public string Lucro { get; set; }

        [Display(Name = "Voo Promocional")]
        public bool VooPromocional { get; set; }

        [Display(Name = "Desconto da Promoção (%): ")]
        public string DescontoPromocao { get; set; }

        [Display(Name = "Custo total do voo (R$) *")]
        [Required(ErrorMessage = "Indique um custo para o Voo")]
        public string Preco { get; set; }

        public string DataCadastro { get; set; }
        public int IdPessoaUsuario { get; set; }

        //Itens para popular os combos
        public List<SelectListItem> ItensAeronaves { get; set; }

        public List<SelectListItem> ItensUFPartida { get; set; }
        public List<SelectListItem> ItensCidadePartida { get; set; }
        public List<SelectListItem> ItensAeroportoPartida { get; set; }

        public List<SelectListItem> ItensUFChegada { get; set; }
        public List<SelectListItem> ItensCidadeChegada { get; set; }
        public List<SelectListItem> ItensAeroportoChegada { get; set; }
    }
}